#!/bin/sh

IBPATH=${IBPATH:-/usr/local/bin}

function usage() {
	echo Usage: `basename $0` [-h] [\<topology-file\>]
	exit -1
}

while [ "$1" ]; do
	case $1 in
	-h)
		usage
		;;
	-*)
		usage
		;;
	*)
		break
		;;
	esac
done

if [ "$1" ]; then
	netcmd="cat $1"
else
	netcmd="$IBPATH/ibnetdiscover"
fi

eval $netcmd | awk '
/^Switch/	{
			l=$0
			desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
			pi=match(desc, "port 0.*")
			pinfo=substr(desc, pi)
			desc=substr(desc, 1, pi-2)
			type="base"
			ti=match(desc, type) 
			if (ti==0) {
				type="enhanced"
				ti=match(desc, type) 
				if (ti!=0)
					desc=substr(desc, 1, ti-2)
			} else
				desc=substr(desc, 1, ti-2)
			if (ti==0)
				print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\
					desc " " pinfo
			else
				print $1 "\t: 0x" substr($3, 4, 16) " ports " $2 " "\
					desc " " type " " pinfo}
'
